<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
      $this->display();
    }

    public function  dologin(){
      $condition=array(
         'stunum'=>$_POST['stunum'],
         'password'=>md5(I('post.password'))
        );
      $userModel=M('Users');
      $user=$userModel->where($condition)->find();
      if ($user) {
        // 是合法用户,设置session值
        session('user',$user);
        $this->redirect('Index/index');
      }
      else
      {
        // 非法用户
        $this->error('用户名与密码不匹配!!!');
      }
    }

    public function  logout(){
        session('user',null);
        $this->redirect('Index/index');
    }


    public function register(){
        //添加用户
        //验证用户名是否存在，口令是否正确，是否需要加密
     $userModel=D('Users');
    if ($userModel->create()) 
    {
     if($_FILES['photo']['error']==0)
     {
     $filename=$this->img();
     $userModel->photo=$filename;
      }
   $userModel->regtime=date('Y-m-d H-i-s');
   $userModel->pass=md5($_POST['pass']);
    if ($userModel->add()) {
     $this->success('注册成功',U('Home/Index/index'));
    }
    else{
      $this->error('注册失败');
    }
   }
   else
   { 
    $this->error($userModel->getError());
   }
    }

    function img(){
    //图像处理函数
    $photoinfo=$this->upload();//将临时文件保存到指定位置
    $filepath='./Public/Uploads/photo/'; //定义图片的保存论经
    $oldFileName=$photoinfo['photo']['savename'];//未修改的文件名不包含文件位置
    $oldFileFullName=$filepath.'\\'.$oldFileName;
    //未修改的文件名包含保存文件的位置和文件名
    $newFilename='thumb_'.$oldFileName;//新文件名
    $newFileFullName=$filepath."\\".$newFilename;
     //修改后的文件名包含保存文件的位置和文件名

    $image=new \ Think\Image();
    $image->open($oldFileFullName);//定义打开的修改文件
    $image->thumb(150,150)->save($newFileFullName);//定义文件缩略的大小和缩略后的文件名
    return $newFilename;
  }

         public function upload(){
        $upload= new \Think\Upload();
        $upload->maxSize=3145728;
        $upload->exts=array('jpg','gif','png','jpeg');
        $upload->rootPath='./Public/UpLoads/photo/';
        $upload->autoSub=false;
        
        $info = $upload->upload();
        if(!$info) {
        // 上传错误提示错误信息
        $this->error($upload->getError());
        }
        else
        {// 上传成功
         return $info;
        }
 }
 public function userDetail(){

    if (!session('?user')) {
      $this->error('想要查看个人信息，请先登陆');
    }
    else
    {
      $usersModel=M('Users');
      $stunum=session('user.stunum');
      $this->user=$usersModel->where('stunum ='.$stunum)->select();

      $practiceModel=M('Stuprac');
      $this->practice=$practiceModel->join('practices on Stuprac.pid = practices.id')->where('Stuprac.stunum='.$stunum)->select();
      
      $groupModel=M('Groups');

      $this->group=$groupModel->join('members on Groups.gid=members.gid')->where('members.stunum='.$stunum)->select();
      $this->display();
    }
 }

function updateMyInfo(){
      $id=session('user.uid');
     $usersModel=M('Users');
     $this->user=$usersModel->find($id);
     $this->display();
     //强查询到的用户信息user 传递给模板updateUserInfo.html
   }

 function update(){
    //获取updateUserInfo提交过来的数据，写入并修改数据库
    //获取参数方法 $_POST I(post.+字段名)  例$data=$_POST    $data=I(post,)
    // create()  利用$_POST数组创建一个对象  
    $userModel=M('Users');
    $userModel->create();
  if($_FILES['photo']['error']==0)
  {
    $photoinfo=$this->upload();
    $userModel->photo=$photoinfo['photo']['savename'];
  }
    if ($userModel->save()) {
     $this->success('修改个人信息成功','Index/index');
    }
    else{
      $this->error('修改个人信息失败');
             }
  }

  public function delGroup($id){
      $userModel=M('Members');
      $id=$_GET['id'];
      if($userModel->delete($id)){
        // $groupModel=M('Groups');
        // $data['leader']=null;
        // if ($groupModel->where('gid='.$id)save($data)) {
        //   # code...
        // }
        $this->success('退出成功');
         }
    else{
        $this->error('退出失败');
    }
  }
    public function delPractice(){
      $userModel=M('Stuprac');
      $id=$_GET['id'];
      if($userModel->delete($id)){
        $this->success('退出成功');
         }
    else{
        $this->error('退出失败');
    }
  }


public function userGroup(){
  $groupModel=M('Groups');
  $id=session('user.stunum');
  if ($this->groups=$groupModel->where('leader='.$id)->select()) {
    //根据session和数据库中的leader对应判断是否为社团管理人
  $practiceModel=M('Members');
  $this->members=$practiceModel->join('Groups on Members.gid=groups.gid')->join('Users on members.stunum=users.stunum')->where('groups.leader='.$id)->select();
//将memebers表的gid和groups表的gid相关联，找出gid值相同的数组，并关联users表输出用户的姓名，在根据groups的leader和session的学号来判断是否为社团负责人
  }
  else{
    $this->error('对不起，没有您负责的社团','Index/userDetail');
  }
  $this->display();
}

 function updateGroupInfo($id){
     $usersModel=M('Groups');
     $this->group=$usersModel->find($id);
     $this->display();
     //强查询到的用户信息user 传递给模板updateUserInfo.html
   }

    function updateUserGroup(){
    //获取updateUserInfo提交过来的数据，写入并修改数据库
    //获取参数方法 $_POST I(post.+字段名)  例$data=$_POST    $data=I(post,)
    // create()  利用$_POST数组创建一个对象  
    $userModel=M('Groups');
    $userModel->create();
  if($_FILES['logo']['error']==0)
  {
    $photoinfo=$this->upload();
    $userModel->photo=$photoinfo['logo']['savename'];
  }
    if ($userModel->save()) {
     $this->success('修改社团信息成功','Index/index');
    }
    else{
      $this->error('修改社团信息失败');
             }
  }

    public function setGroupUser($id)
   {
         $usersModel=M('Members');
         $data['state']=1;
         if($usersModel->where('id='.$id)->save($data))
          {$this->success('审批通过');}
         else
          {$this->error('审批失败');}
   }

      public function delGroupUser($id)
   {
         $usersModel=M('Members');
         $usersModel->create();
         if($usersModel->where('id='.$id)->delete())
          {$this->success('退出成果');}
         else
          {$this->error('退出失败');}
   }
    public function userPractice($id){
       $practiceModel=M('Practices');
  if ($this->practice=$practiceModel->where('groupname='.$id)->select()) {
    //根据session和数据库中的leader对应判断是否为社团管理人
  $practiceModel=M('Stuprac');
  $this->members=$practiceModel->join('Practices on Stuprac.pid=Practices.id')->join('Users on Stuprac.stunum=users.stunum')->where('Practices.groupname='.$id)->select();
//将memebers表的gid和groups表的gid相关联，找出gid值相同的数组，并关联users表输出用户的姓名，在根据groups的leader和session的学号来判断是否为社团负责人
  }
  else{
    $this->error('对不起，没有此社团负责的活动','Index/index');
  }
  $this->display();
}

   public function setPracticeUser($id)
   {
         $usersModel=M('Stuprac');
         $data['state']=1;
         if($usersModel->where('sid='.$id)->save($data))
          {$this->success('审批通过');}
         else
          {$this->error('审批失败');}
   }

      public function delPracticeUser($id)
   {
         $usersModel=M('Stuprac');
         $usersModel->create();
         if($usersModel->where('sid='.$id)->delete())
          {$this->success('退出成功');}
         else
          {$this->error('退出失败');}
   }

 function updatePracticeInfo($id){
     $usersModel=M('Practices');
     $this->practices=$usersModel->find($id);
     $this->display();
     //强查询到的用户信息user 传递给模板updateUserInfo.html
   }
 function updatePractice(){
    //获取updateUserInfo提交过来的数据，写入并修改数据库
    //获取参数方法 $_POST I(post.+字段名)  例$data=$_POST    $data=I(post,)
    // create()  利用$_POST数组创建一个对象  
    $userModel=M('Practices');
    $userModel->create();
  if($_FILES['logo']['error']==0)
  {
    $photoinfo=$this->upload();
    $userModel->photo=$photoinfo['logo']['savename'];
  }
    if ($userModel->save()) {
     $this->success('修改活动信息成功','Index/index');
    }
    else{
      $this->error('修改活动信息失败');
             }
  }
 }